#ifndef IGSLIB_TYPEDEF_H
#define IGSLIB_TYPEDEF_H

#include <string>
#include <stdio.h>
#include <stdarg.h>

#define _CRT_SECURE_NO_WARNINGS

#ifdef WIN32
    #ifndef WIN32_LEAN_AND_MEAN
        #define WIN32_LEAN_AND_MEAN
    #endif
    #include <Windows.h>
    typedef  char GDBYTE;
    typedef  INT8 GDINT8;
    typedef  INT16 GDINT16;
    typedef  INT32 GDINT32;
    typedef  INT64 GDINT64;
    typedef  unsigned char GDUBYTE;
    typedef  UINT8 GDUINT8;
    typedef  UINT16 GDUINT16;
    typedef  UINT32 GDUINT32;
    typedef  UINT64 GDUINT64;
#endif

#ifdef IGS_LINUX
    #include <dlfcn.h>
    typedef signed char			GDBYTE;
    typedef signed char			GDINT8;
    typedef signed short		GDINT16;
    typedef signed long			GDINT32;
    typedef signed long long	GDINT64;
    typedef unsigned char		GDUBYTE;
    typedef GDUBYTE				GDUINT8;
    typedef unsigned short		GDUINT16;
    typedef unsigned long		GDUINT32;
    typedef unsigned long long	GDUINT64;
#endif

typedef void* (*FUNC)(void*);
typedef  float GDFLOAT;
typedef  double GDDOUBLE;

#endif
